package com.ruoyi.purchase.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.purchase.domain.InspectionItem;
import com.ruoyi.purchase.domain.InspectionResult;
import com.ruoyi.purchase.domain.InspectionScheme;
import com.ruoyi.purchase.domain.RejectionRecord;

import java.util.Date;
import java.util.List;

public class InspectionPlanVO {


    /** 检验计划ID */
    private Long id;

    /** 检验计划单号 */
    private String planId;

    /** 收料通知单号 */
    private String receiveId;

    /** 采购订单号 */
    private String poId;

    /** 存货编码 */
    private String itemId;

    /** 批次号 */
    private String batch;

    /** 供应商编码 */
    private String vendorId;

    /** 检验状态：0-待检验，1-检验中，2-已完成 */
    private Long inspectionStatus;

    /** 抽检数量 */
    private Long actual_quantity;

    /** 合格数量 */
    private Long qualifiedQuantity;

    /** 不合格数量 */
    private Long rejectQuantity;

    /** 检验人 */
    private String inspector;

    /** 检验结果：0-未检验，1-不合格，2-合格 */
    private Long inspectionResult;

    /** 检验日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date inspectionDate;

    /** 备注 */
    private String remark;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createdAt;

    /** 创建人 */
    private String createdPerson;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date updatedAt;

    /** 是否拒收：0-否，1-是 */
    private Integer isRejected;

    // 关联字段
    /** 存货名称 */
    private String itemName;

    /** 规格型号 */
    private String spec;

    /** 供应商名称 */
    private String vendorName;

    /** 检验方案 */
    private InspectionScheme inspectionScheme;

    /** 检验项目列表 */
    private List<InspectionItem> inspectionItems;

    /** 不合格记录列表 */
    private List<RejectionRecord> rejectionRecords;

    /** 检验指标结果列表 */
    private List<InspectionResult> inspectionResults;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getPlanId() {
        return planId;
    }

    public void setPlanId(String planId) {
        this.planId = planId;
    }

    public String getReceiveId() {
        return receiveId;
    }

    public void setReceiveId(String receiveId) {
        this.receiveId = receiveId;
    }

    public String getPoId() {
        return poId;
    }

    public void setPoId(String poId) {
        this.poId = poId;
    }

    public String getItemId() {
        return itemId;
    }

    public void setItemId(String itemId) {
        this.itemId = itemId;
    }

    public String getBatch() {
        return batch;
    }

    public void setBatch(String batch) {
        this.batch = batch;
    }

    public String getVendorId() {
        return vendorId;
    }

    public void setVendorId(String vendorId) {
        this.vendorId = vendorId;
    }

    public Long getInspectionStatus() {
        return inspectionStatus;
    }

    public void setInspectionStatus(Long inspectionStatus) {
        this.inspectionStatus = inspectionStatus;
    }

    public Long getActual_quantity() {
        return actual_quantity;
    }

    public void setActual_quantity(Long actual_quantity) {
        this.actual_quantity = actual_quantity;
    }

    public Long getQualifiedQuantity() {
        return qualifiedQuantity;
    }

    public void setQualifiedQuantity(Long qualifiedQuantity) {
        this.qualifiedQuantity = qualifiedQuantity;
    }

    public Long getRejectQuantity() {
        return rejectQuantity;
    }

    public void setRejectQuantity(Long rejectQuantity) {
        this.rejectQuantity = rejectQuantity;
    }

    public String getInspector() {
        return inspector;
    }

    public void setInspector(String inspector) {
        this.inspector = inspector;
    }

    public Long getInspectionResult() {
        return inspectionResult;
    }

    public void setInspectionResult(Long inspectionResult) {
        this.inspectionResult = inspectionResult;
    }

    public Date getInspectionDate() {
        return inspectionDate;
    }

    public void setInspectionDate(Date inspectionDate) {
        this.inspectionDate = inspectionDate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Date getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    public String getCreatedPerson() {
        return createdPerson;
    }

    public void setCreatedPerson(String createdPerson) {
        this.createdPerson = createdPerson;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    public Integer getIsRejected() {
        return isRejected;
    }

    public void setIsRejected(Integer isRejected) {
        this.isRejected = isRejected;
    }

    public String getItemName() {
        return itemName;
    }

    public void setItemName(String itemName) {
        this.itemName = itemName;
    }

    public String getSpec() {
        return spec;
    }

    public void setSpec(String spec) {
        this.spec = spec;
    }

    public String getVendorName() {
        return vendorName;
    }

    public void setVendorName(String vendorName) {
        this.vendorName = vendorName;
    }

    public InspectionScheme getInspectionScheme() {
        return inspectionScheme;
    }

    public void setInspectionScheme(InspectionScheme inspectionScheme) {
        this.inspectionScheme = inspectionScheme;
    }

    public List<InspectionItem> getInspectionItems() {
        return inspectionItems;
    }

    public void setInspectionItems(List<InspectionItem> inspectionItems) {
        this.inspectionItems = inspectionItems;
    }

    public List<RejectionRecord> getRejectionRecords() {
        return rejectionRecords;
    }

    public void setRejectionRecords(List<RejectionRecord> rejectionRecords) {
        this.rejectionRecords = rejectionRecords;
    }

    public List<InspectionResult> getInspectionResults() {
        return inspectionResults;
    }

    public void setInspectionResults(List<InspectionResult> inspectionResults) {
        this.inspectionResults = inspectionResults;
    }

    @Override
    public String toString() {
        return "InspectionPlanVO{" +
                "id=" + id +
                ", planId='" + planId + '\'' +
                ", receiveId='" + receiveId + '\'' +
                ", poId='" + poId + '\'' +
                ", itemId='" + itemId + '\'' +
                ", batch='" + batch + '\'' +
                ", vendorId='" + vendorId + '\'' +
                ", inspectionStatus=" + inspectionStatus +
                ", actual_quantity=" + actual_quantity +
                ", qualifiedQuantity=" + qualifiedQuantity +
                ", rejectQuantity=" + rejectQuantity +
                ", inspector='" + inspector + '\'' +
                ", inspectionResult=" + inspectionResult +
                ", inspectionDate=" + inspectionDate +
                ", remark='" + remark + '\'' +
                ", createdAt=" + createdAt +
                ", createdPerson='" + createdPerson + '\'' +
                ", updatedAt=" + updatedAt +
                ", isRejected=" + isRejected +
                ", itemName='" + itemName + '\'' +
                ", spec='" + spec + '\'' +
                ", vendorName='" + vendorName + '\'' +
                ", inspectionScheme=" + inspectionScheme +
                ", inspectionItems=" + inspectionItems +
                ", rejectionRecords=" + rejectionRecords +
                ", inspectionResults=" + inspectionResults +
                '}';
    }
}
